package com.yk.course.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yk.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yk.common.annotation.Excel;

/**
 * 课程详情对象 course_period
 * 
 * @author xufei
 * @date 2025-05-03
 */
@Data
public class CoursePeriod extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String name;

    /** 课程编号 */
    @Excel(name = "课程编号")
    private String code;
    /** 课程id */
//    @Excel(name = "课程id")
    private Long infoId;
    @Excel(name = "课程分类")
    private String type;
    private Long typeId;

    @Excel(name = "教师")
    private String teacherName;
    /** 课程节次 */
    @Excel(name = "课程节次")
    private Integer courseNum;

    /** 课程日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "课程日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date periodDate;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 划课 0未划 1已划 */
    @Excel(name = "划课 0未划 1已划")
    private String scratchOutStatus;
    private String scratchOut;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("infoId", getInfoId())
            .append("courseNum", getCourseNum())
            .append("periodDate", getPeriodDate())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("scratchOut", getScratchOut())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
